import { toStringTypeCheck } from '../../../Func/uniFunc/Func';

/**
 * 2023.07.29 21:29 星期六 晴雨 3120 分 漂亮 力阳 没有惩罚 ??
 *
 * bool -- false 删除 classstr
 *
 * bool -- true 添加
 * @param {HTMLElement} element
 * @param {String} classstr
 * @param {Boolean} bool --true 尝试 添加 classstr
 */

/**
 * 给元素 添加 class 可以是 类 集
 * @param {HTMLElement} element
 * @param {string | string[]} classstr_arr
 * @param {boolean} is_add -- true 尝试 添加 classstr_arr
 */
function remove_class(element, classstr_arr, is_add) {
  if (toStringTypeCheck(classstr_arr, 'string')) {
    classstr_arr = [classstr_arr];
  }
  for (const classstr of classstr_arr) {
    if (is_add) {
      _add_class(element, classstr);
    } else {
      _remove_class(element, classstr);
    }
  }
}

function _remove_class(element, classstr) {
  element.classList.contains(classstr)
    ? element.classList.remove(classstr)
    : undefined;
}

/**
 * 给元素 添加 class 可以是 类 集
 * @param {HTMLElement} element
 * @param {string | string[]} classstr_arr
 */
function add_class(element, classstr_arr) {
  if (toStringTypeCheck(classstr_arr, 'string')) {
    classstr_arr = [classstr_arr];
  }
  for (const classstr of classstr_arr) {
    _add_class(element, classstr);
  }
}

function _add_class(element, classstr) {
  element.classList.contains(classstr)
    ? undefined
    : element.classList.add(classstr);
}

export { remove_class, add_class };
